import { defineStore } from 'pinia'

// 用户状态管理
// - 保存登录用户信息与 token
// - 提供基础的设置/清理方法
export const useUserStore = defineStore('user', {
  state: () => ({
    // 用户名：默认从本地存储恢复，便于刷新后仍能显示
    username: localStorage.getItem('username') || '访客',
    // 登录 token：从本地存储恢复，用于路由守卫判断是否已登录
    token: localStorage.getItem('token') || '',
     role: localStorage.getItem('role') || '', // 新增
  }),
  actions: {
    // 设置用户名，并持久化
    setUser(name) {
      this.username = name
      localStorage.setItem('username', name || '')
    },
    // 设置 token，并持久化
    setToken(t) {
      this.token = t || ''
      if (t) localStorage.setItem('token', t)
      else localStorage.removeItem('token')
    },
    setRole(role) { // 新增
      this.role = role || ''
      if (role) localStorage.setItem('role', role)
      else localStorage.removeItem('role')
    },
    // 清除登录信息（退出登录）
    logout() {
      this.setToken('')
      this.setUser('访客')
      this.setRole('')
    }
  },
})
